package tutorial;

import gui.RiskGUI;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

import resources.images.ImagesPath;

import com.swtdesigner.SWTResourceManager;

public class StepThree implements TutorialWindow {

	private Label hereYouAreText;
	protected Object result;
	protected Shell shell;
	protected Shell parent;
	private Tutorial tutorial;

	/**
	 * Create the dialog
	 * @param parent
	 * @param tutorial 
	 */
	public StepThree(Shell parent, Tutorial tutorial) {
		this.parent = parent;
		this.tutorial = tutorial;
	}
	
	/**
	 * Open the dialog
	 * @return the result
	 */
	public void open() {
		createContents();
		shell.open();
		shell.layout();
	}

	/**
	 * Create contents of the dialog
	 */
	protected void createContents() {
		shell = new Shell(parent, SWT.DIALOG_TRIM);
		shell.addShellListener(new ShellAdapter() {
			public void shellClosed(final ShellEvent e) {
				tutorial.endTutotial();
			}
		});
		shell.setBackgroundMode(SWT.INHERIT_DEFAULT);
		shell.setBackgroundImage(new Image(Display.getDefault(), ImagesPath.getImageStream("tutorial_background.png")));
		shell.setLocation(parent.getBounds().width,0);
		shell.setSize(219, RiskGUI.display.getClientArea().height);
		shell.setText("Step three");

		final Label welcomeToRiskLabel = new Label(shell, SWT.CENTER);
		welcomeToRiskLabel.setBounds(0, 10, 214, 84);
		welcomeToRiskLabel.setForeground(SWTResourceManager.getColor(255, 0, 0));
		welcomeToRiskLabel.setFont(SWTResourceManager.getFont("Comic Sans MS", 22, SWT.NONE));
		welcomeToRiskLabel.setText("Step three: place soldiers");

		hereYouAreText = new Label(shell, SWT.WRAP);
		hereYouAreText.setBounds(10, 115, 194, 427);
		hereYouAreText.setText("At the first round of each risk game, there is a \"palcing\" phase in which the only move each player can do is to add soldiers on a country he owns.\nThis phase is suppose to even the game by preventing the first player to attack before all of his opponents had the chance to enforce their countries.\nIn the phase and in any other, to add a soldier on a country you own, simply double click on its territory.");
		hereYouAreText.setFont(SWTResourceManager.getFont("Comic Sans MS", 12, SWT.NONE));

		final Label label = new Label(shell, SWT.NONE);
		label.addMouseListener(new MouseAdapter() {
			public void mouseDown(final MouseEvent arg0) {
				tutorial.prvStep();
			}
		});
		label.setToolTipText("Secret mission");
		label.setBackgroundImage(new Image(Display.getCurrent(), ImagesPath.getImageStream("left.gif")));
		label.setBounds(90, shell.getBounds().height-100, 58, 58);
		
		final Label label_1 = new Label(shell, SWT.NONE);
		label_1.addMouseListener(new MouseAdapter() {
			public void mouseDown(final MouseEvent arg0) {
				tutorial.nextStep();
			}
		});
		label_1.setToolTipText("Attack");
		label_1.setBackgroundImage(new Image(Display.getCurrent(), ImagesPath.getImageStream("right.gif")));
		label_1.setBounds(150, shell.getBounds().height-100, 58, 58);
		//
	}

	public Shell getShell() {
		return shell;
	}

}
